UDP
✒️ 2025-05-31 23:00 내용 수정
UDP(User Datagram Protocol)
TCP와 함께 패킷을 교환하기 위해 사용하는 프로토콜
- 유니버셜 데이터그램 프로토콜(Universal Datagram Protocol)로도 부른다.
- UDP도 인터넷 프로토콜 스위트(TCP/IP 모델)에서 전송 계층에 위치한다.
- IP 네트워크 내에서 UDP는 커뮤니케이션 채널이나 데이터 경로를 설정하는 사전 커뮤니케이션이 필요 없다.
특징
- 비연결 프로토콜(Connectionless Protocol) : 메시지는 연결 설정 없이 전달되며, 전송한 메시지를 추적하지 않는다.
- 각 메시지는 독립적으로 처리된다.
- 데이터 무결성 : UDP는 checksum(체크섬)을 사용하여 데이터 오류를 검증할 수 있다.
- 신뢰성 없는 전송 : 데이터 전송, 순서, 중복 방지에 대한 보장이 없다.
- 재전송, 흐름 제어, 혼잡 제어 등의 기능이 없다.
- 데이터 무결성을 확인할 수 있으나 오류 복구 기능은 없다.
- 적은 오버헤드 : UDP 헤더의 크기는 8바이트이며, 간단한 구조로 인해 오버헤드가 적다.
- 포트를 사용한 다중화 : IP 주소와 포트의 결합으로 생성된 데이터 전송 엔드포인트에 datagram socket을 바인딩할 수 있다.
- 동일한 호스트 내의 여러 애플리케이션이 UDP 서비스를 사용할 수 있다.
- 사용처 : 간단하고 빠르게 데이터를 전송하는 DNS, IPTV, IP 터널, 온라인 게임, 실시간 통신, 스트리밍 서비스 등에 사용한다.
TCP와의 차이점
- TCP와 UDP 모두 인터넷에서 통신을 할 때 사용하는 프로토콜이다.
- 하지만 두 프로토콜 간의 차이가 존재하며, 프로토콜의 특성에 따라 사용하는 분야도 다르다.
| 항목 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결형 (Connection-oriented) | 비연결형 (Connectionless) |
| 신뢰성 | 있음 재전송, 순서 보장 등 |
없음 |
| 헤더 크기 | 최소 20바이트 | 8바이트 |
| 순서 보장 | 있음 | 없음 |
| 오류 복구 | 있음 | 없음 |
| 흐름/혼잡 제어 | 있음 | 없음 |
| 사용 사례 | 파일 전송, 웹 브라우징 등 | 실시간 통신, 스트리밍 등 |
UDP 데이터그램 구조
- UDP 데이터그램은 데이터그램 헤더와 데이터 영역으로 나뉜다.
- 헤더 : UDP 데이터그램의 메타 데이터
- 데이터 : 전송할 데이터
| 헤더 | 설명 |
|---|---|
| 소스 포트 | 송신자의 포트 |
| 도착지 포트 | 수신자의 포트 |
| 길이 | UDP 데이터그램의 길이(헤더+데이터) |
| checksum(체크섬) | 헤더와 데이터의 오류 검증을 위한 필드 |